//
//  Person.swift
//  GDSwift
//
//  Created by 热带雨林 on 2021/1/9.
//  Copyright © 2021 热带雨林. All rights reserved.
//

import UIKit

//  定义类使用class
//  swift 类可以没有父类 (有些功能实现不了,比不kvc)

//  类里面可以定义 可选属性, 必选属性

//  在swift 构造函数 都是 init

//  Person 类的命名空间就是 工程名？？？

//  构造函数的作用-> 给 属性分配内存空间,设置初始值, 最终创建一个对象

class Person: NSObject {

    // --属性--
    //必选属性 必选属性 -> 对象创建成功后,该属性一定有值
    var name: String
    //可选属性 可选属性 -> 可选属性默认值为nil, 不会分配内存空间, 在赋值的时候才去分配内存空间, 符合移动开发延时创建原则
    var age: Int?
    
    //override 表示重写
    override init() {
        
        name = "nihao"
        age = 28
         //在调用super.init()构造函数之前 必须给当前类里面的必选属性进行初始化
        super.init()
    }
    
    //  重载构造函数
    //  -> 函数名相同,参数名或者参数个数不同就叫做重载, 不仅限于构造函数,也适合其它不同的函数
    init(name: String, age: Int){
        self.name = name
        self.age = age
        super.init()
    }
    
    
}
